package org.qh.common.core.enums;

import lombok.Getter;

@Getter
public enum ResponseEnum {

    /**
     * 请求成功
     */
    OK("请求成功"),
    /**
     * 请求成功
     */
    SAVE_OK("保存成功"),

    /**
     * 无法读取获取请求参数
     */
    HTTP_MESSAGE_NOT_READABLE("请求参数格式有误"),

    /**
     * 未授权
     */
    UNAUTHORIZED("Unauthorized"),

    /**
     * 服务器出了点小差
     */
    EXCEPTION("服务器出了点小差"),

    /**
     * 服务不可用
     */
    FEIGN_SERVICE_UNAVAILABLE("服务不可用"),

    /**
     * 内部服务器错误
     */
    INTERNAL_SERVER_ERROR("内部服务器错误"),

    /**
     * 数据记录已存在
     */
    DUPLICATE_KEY("数据库中已存在该记录，请联系管理员确认"),

    /**
     * 数据异常
     */
    DATA_ERROR("数据异常，请刷新后重新操作"),

    /**
     * 数据记录已存在
     */
    OPERATION_INVALID_ADMIN("操作无效，请联系管理员！"),

    /**
     * 数据异常
     */
    SERVER_REFRESH_CACHE("服务器需请刷新缓存"),

    /**
     * 数据异常，文件上传失败
     */
    UPLOAD_FILE_ERROR("数据异常，文件上传失败"),

    /**
     * 一些需要登录的接口，而实际上因为前端无法知道token是否已过期，导致token已失效时，
     * 应该返回一个状态码，告诉前端token已经失效了，及时清理
     */
    CLEAN_TOKEN("clean token"),

    /**
     * 刷新token已过期
     */
    REFRESH_TOKEN_EXIST("refresh token exist"),

    /**
     * 数据不完整
     */
    DATA_INCOMPLETE("数据不完整"),

    /**
     * 操作错误
     */
    ERROR_INCOMPLETE("操作错误"),
    /**
     * 您还没有支付密码，请先设置支付密码！
     */
    NO_PASSWORD_ERROR("您还没有支付密码，请先设置支付密码！"),
    /**
     * 您还没有支付密码，请先设置支付密码！
     */
    NOT_PASSWORD_ERROR("未设置支付密码"),
    /**
     * 已存在支付密码
     */
    YES_PASSWORD_ERROR("已存在支付密码"),

    /**
     * 原始密码错误
     */
    OLE_PASSWORD_ERROR("原始密码错误"),
    /**
     * 两次输入的密码不一致
     */
    NEW_CONFIRM_PASSWORD_ERROR("两次输入的密码不一致"),
    /**
     * 修改成功
     */
    NEW_PASSWORD_SUCCESS("修改成功"),
    /**
     * 修改失败
     */
    NEW_PASSWORD_ERROR("修改失败"),
    /**
     * 验证码短信发送异常
     */
    SAND_SMS_RESPONSE_ERROR("验证码短信发送异常"),
    /**
     * 验证码错误
     */
    SMS_CODE_ERROR("验证码错误"),
    /**
     * 验证码已过期
     */
    SMS_CODE_EXPIRED("验证码未发送或已过期"),
    /**
     * 数据不存在
     */
    DATA_NOT_EXIST("数据不存在"),
    /**
     * 商品或者该规格已不存在
     */
    SPU_NOT_EXIST("商品或者该规格已不存在"),
    /**
     * 支付渠道不存在
     */
    CHANNEL_NOT_FOUND("支付渠道不存在"),

    CHANNEL_IS_DISABLE("支付渠道已经禁用"),
    /**
     * 数据已存在
     */
    DATA_ALREADY_EXISTS("数据已存在"),


    SKU_NOT_EXISTS("该商品SKU不存在"),


    SPU_NOT_EXISTS("该商品SPU已下架或者删除"),


    PACKAGE_NOT_EXISTS("该套餐已下架或者删除"),


    PRICE_CALCULATE_PAY_PRICE_ILLEGAL("支付价格计算异常，原因：价格小于等于0"),


    RESERVATION_SHOP_CART_EXPIRED("该时间段已有一个商品加入了购物车"),

    RESERVATION_CLOSE("预约暂时已关闭! 请请耐心一下~~。"),

    SHOP_NOT_EXIST("门店不存在"),

    RESERVATION_SHOP_EXPIRED("该时间段门店场地已有预约，请重新预约。"),

    RESERVATION_BED_EXPIRED("这时间段内该床位已被预约，请重新预约。"),

    RESERVATION_PHYSIO_EXPIRED("这时间段内该理疗师已被预约，请重新预约。"),

    RESERVATION_USER_EXPIRED("这时间段内您已预约其他服务，请重新预约。"),

    BED_LOCK_FAILED("床位锁定失败"),

    PHYSIO_LOCK_FAILED("理疗师锁定失败"),

    PERSONAL_LOCK_FAILED("个人原因锁定失败"),

    RESERVATION_OCCUPIED("抱歉，购物车内的预约时间冲突，请重新选择时间或删除其中一个项目，谢谢。如需帮助，请联系客服。"),

    WX_AUTHORIZATION_FAILED("微信授权失败"),

    IS_BED_EXIST("该床位这段时间不可用, 请重新选择"),

    IS_PHYSIO_EXIST("该理疗师这段时间内没空哦, 请重新选择"),

    IS_SHOP_EXIST("该店铺这段时间不处于营业中, 请重新选择"),

    IS_SERVE_EXIST("所选已服务不存在, 请重新选择"),

    IS_PACKAGE_EXIST("所选套餐已不存在, 请重新选择"),

    IS_PERMS_REPEAT("不能重复创建会员菜单!"),

    IS_MEMBER_GROUP_EXIST("目标组不存在!,请重新创建"),

    /**
     * 请勿重复创建订单，
     * 1.当前端遇到该异常时，说明前端防多次点击没做好
     * 2.提示用户 订单已发生改变，请勿重复下单
     */
    REPEAT_ORDER("请勿重复创建订单"),

    /**
     * 订单不存在
     */
    ORDER_NOT_EXIST("订单不存在"),

    /**
     * 订单未发货，无法确认收货
     */
    ORDER_NO_DELIVERY("order no delivery"),

    /**
     * 库存不足，body会具体返回那个skuId的库存不足
     */
    NOT_STOCK("not stock"),

    /**
     * 订单未完成或未关闭，无法删除订单
     */
    ORDER_NOT_FINISH_OR_CLOSE("order not finish or close"),

    /**
     * 订单未支付
     */
    ORDER_NOT_PAYED("订单未支付"),
    /**
     * 交易订单不处于未支付状态
     */
    ORDER_STATUS_IS_NOT_WAITING("交易订单不处于未支付状态"),

    /**
     * 交易订单不处于待到店状态
     */
    ORDER_STATUS_IS_NOT_WAIT_SHOP("交易订单不处于待到店状态"),
    /**
     * 交易订单不处于待到店状态
     */
    ORDER_STATUS_IS_NOT_ALREADY_SHOP("交易订单不处于已到店状态"),

    STAR_ORDER_STATUS_IS_NOT_ALREADY_SHOP("用户服务订单不处于已到店状态"),
    /**
     * 订单更新支付状态失败，支付单金额不匹配
     */
    DEMO_ORDER_UPDATE_PAID_FAIL_PAY_PRICE_NOT_MATCH("订单更新支付状态失败，支付单金额不匹配"),

    ORDER_UPDATE_PAID_FAIL_PAY_ORDER_ID_ERROR("交易订单更新支付状态失败，支付单编号不匹配"),

    ORDER_UPDATE_PAID_STATUS_NOT_UNPAID("交易订单更新支付状态失败，订单不是【未支付】状态"),

    ORDER_UPDATE_PAID_STATUS_NOT_OWE("交易订单更新支付状态失败，订单不是【挂账中】状态"),

    ORDER_CANCEL_FAIL_STATUS_NOT_UNPAID("交易订单取消失败，订单不是【待支付】状态"),

    ORDER_CANCEL_FAIL_STATUS_NOT_WAIT_SHOP("取消失败，订单不是【待到店】状态"),

    ORDER_CANCEL_FAIL_STATUS_NOT_OWE("交易订单取消失败，订单不是【挂账待到店】状态"),

    ORDER_DELETE_FAIL_STATUS_NOT_CANCEL("交易订单删除失败，订单不是【已取消】状态"),

    ORDER_UPDATE_PAID_FAIL_PAY_ORDER_STATUS_NOT_SUCCESS("交易订单更新支付状态失败，支付单状态不是【支付成功】状态"),

    FAILED_TO_INITIATE_PAYMENT("发起支付失败"),
    /**
     * 发起退款失败，示例订单未支付
     */
    DEMO_ORDER_REFUND_FAIL_NOT_PAID("发起退款失败，订单未支付"),
    /**
     * 交易订单不存在
     */
    ORDER_NOT_FOUND("交易订单不存在"),
    /**
     * 交易订单不存在
     */
    ORDER_TRANSACTION_NOT_FOUND("交易流水不存在"),
    /**
     * 发起退款失败，已有子订单完成
     */
    SUBORDERS_ALREADY_COMPLETED("发起退款失败，订单中已有完成的子订单"),
    /**
     * 发起退款失败，示例订单已退款
     */
    DEMO_ORDER_REFUND_FAIL_REFUNDED("发起退款失败，订单已退款"),

    /**
     * 退款申请已发起，请等待结果。
     */
    REFUND_MSG_REFUND_EXISTS("退款申请已发起，请等待结果。"),
    /**
     * 发起退款失败，退款申请信息已不存在
     */
    REFUND_MSG_REFUND_NOT_EXISTS("发起退款失败，退款申请信息已不存在"),

    /**
     * 挂账订单暂时不允许线上退款，请联系商家处理
     */
    OWE_ORDER_REFUND_NOT_ENABLE("挂账订单暂时不允许线上退款，请联系商家处理"),
    /**
     * 该订单已提出退款申请，请您稍作等待
     */
    ORDER_REFUND_REQUESTED_EXISTS("该订单已提出退款申请，请您稍作等待"),
    /**
     * 该订单已提出退款申请，请您稍作等待
     */
    ORDER_REFUND_SUCCESSFULLY("该订单已退款成功"),
    /**
     * 退款异常，请联系店家退款
     */
    REFUND_NOT_ENABLE("退款异常，请联系店家退款"),

    REFUND_INITIATED_SUCCESS("发起退款成功，请耐心等待结果！"),
    REFUND_APPLY_SUBMIT("退款申请已提交，商家正在处理中..., 暂且等待"),
    /**
     * 订单已失败
     */
    ORDER_HAS_FAILED("订单已失败"),
    /**
     * 订单已过期，当前端看到该状态码的时候，提示订单信息已过期，请重新确认后提交，此时用户点击确定，前端刷新页面。
     */
    PAY_ORDER_EXPIRED("支付订单已过期或者订单不存在"),
    /**
     * 订单已过期，当前端看到该状态码的时候，提示订单信息已过期，请重新确认后提交，此时用户点击确定，前端刷新页面。
     */
    PAY_ORDER_STATUS_IS_NOT_WAITING("支付订单不处于待支付"),

    /**
     * 支付订单已经过期
     */
    PAY_ORDER_PAYED("支付订单已经过期"),
    /**
     * 订单已支付，无法取消订单
     */
    PAY_ORDER_IS_EXPIRED("order payed"),
    /**
     * 支付订单不存在
     */
    PAY_ORDER_NOT_FOUND("支付订单不存在"),

    PAY_ORDER_SUBMIT_CHANNEL_ERROR("支付失败，错误提示：{}"),
    /**
     * 支付订单退款失败，原因：状态不是已支付或已退款
     */
    PAY_ORDER_REFUND_FAIL_STATUS_ERROR("支付订单退款失败，原因：状态不是已支付或已退款"),
    /**
     * 退款金额超过订单可退款金额
     */
    REFUND_PRICE_EXCEED("退款金额超过订单可退款金额"),
    /**
     * 已经有退款在处理中
     */
    REFUND_HAS_REFUNDING("已经有退款在处理中或者已完成，请等待"),
    /**
     * 支付退款单不处于待退款
     */
    REFUND_STATUS_IS_NOT_WAITING("支付退款单不处于待退款"),
    /**
     * 支付交易拓展单不存在
     */
    ORDER_EXTENSION_NOT_FOUND("支付交易拓展单不存在"),
    /**
     * 支付交易拓展单不处于待支付
     */
    ORDER_EXTENSION_STATUS_IS_NOT_WAITING("支付交易拓展单不处于待支付"),
    /**
     * 订单已支付，请等待支付结果
     */
    PAY_ORDER_EXTENSION_IS_PAID("订单已支付，请等待支付结果"),
    /**
     * 订单已支付，请刷新页面
     */
    PAY_ORDER_STATUS_IS_SUCCESS("订单已支付，请刷新页面"),
    /**
     * 订单已支付，请等待支付结果
     */
    ORDER_EXTENSION_IS_PAID("订单已支付!"),
    /**
     * 订单已关闭，请重新下单!
     */
    ORDER_CLOSE_IS_PAID("订单已关闭，请重新下单!"),
    /**
     * 找不到对应的支付客户端
     */
    PAY_CLIENT_IS_EXPIRED("找不到对应的支付客户端"),
    /**
     * 钱包余额不足
     */
    PURSE_BALANCE_NOT_ENOUGH("钱包余额不足"),

    WALLET_FREEZE_PRICE_NOT_ENOUGH("钱包冻结余额不足"),
    /**
     * 钱包退款失败
     */
    PURSE_REFUND_NOT_ENOUGH("钱包退款失败"),
    /**
     * 钱包充值失败
     */
    PURSE_RECHARGE_NOT_ENOUGH("钱包充值失败"),

    /**
     * 评价异常
     */
    EVALUATION_INCOMPLETE("该订单尚未完成，暂时不能评价"),

    /**
     * 开票异常
     */
    RECEIPT_INCOMPLETE("该订单尚未完成，暂时不能开票"),
    /**
     * 该订单已完成开票
     */
    RECEIPT_COMPLETE("该订单已完成开票"),
    /**
     * 开票金额异常
     */
    RECEIPT_PAY_PRICE_ERROR("开票金额异常，暂时不能开票"),
    /**
     * 余额不足以抵扣本次消费
     */
    PURSE_INSUFFICIENT_ERROR("您的余额不足以抵扣本次消费！"),
    /**
     * 支付退款单不存在
     */
    REFUND_NOT_FOUND("支付退款单不存在"),
    /**
     * 未找到对应的钱包交易
     */
    WALLET_TRANSACTION_NOT_FOUND("未找到对应的钱包交易"),

    /**
     * 未找到对应的钱包交易
     */
    WALLET_REFUND_EXIST("已经存在钱包退款"),
    /**
     * 钱包不存在
     */
    PURSE_NOT_FOUND("钱包不存在"),

    WALLET_RECHARGE_NOT_FOUND("钱包充值记录不存在"),

    WALLET_RECHARGE_UPDATE_PAID_PAY_ORDER_ID_ERROR("钱包充值更新支付状态失败，支付单编号不匹配"),

    WALLET_RECHARGE_UPDATE_PAID_STATUS_NOT_UNPAID("钱包充值更新支付状态失败，钱包充值记录不是【未支付】状态"),

    WALLET_RECHARGE_UPDATE_PAID_PAY_ORDER_STATUS_NOT_SUCCESS("钱包充值更新支付状态失败，支付单状态不是【支付成功】状态"),

    WALLET_RECHARGE_UPDATE_PAID_PAY_PRICE_NOT_MATCH("钱包充值更新支付状态失败，支付单金额不匹配"),
    /**
     * 已经存在退款单
     */
    REFUND_EXISTS("已经存在退款单"),

    /**
     * 没有查询权限
     */
    REFUND_NOT_PERMISSION("refund not permission"),

    /**
     * 撤销失败 当前状态不允许此操作
     */
    REFUND_STATUS_CHECK("refund status check"),

    /**
     * 有些时候第三方系统授权之后，会有个临时的key，比如小程序的session_key
     * 这个异常代表session_key过期，前端遇到这个问题的时候，应该再次调用社交登录的接口，刷新session_key
     */
    BIZ_TEMP_SESSION_KEY_EXPIRE("biz temp session key expire"),

    /**
     * 账号未注册，前端看到这个状态码，弹出选择框，提示用户账号未注册，是否进入注册页面，用户选择是，进入注册页面
     */
    ACCOUNT_NOT_REGISTER("account not register"),

    /**
     * 手机号重复,不能重复创建
     */
    ACCOUNT_PHONE_EXPIRE("手机号重复,不能重复创建"),

    /**
     * 套餐名称重复,不能重复创建
     */
    COMBO_NAME_EXPIRE("套餐名称重复,不能重复创建"),

    /**
     * 服务名称和服务时常不能同时存在
     */
    SERVICE_NAME_AND_DURATION_EXIST("服务名称和服务时长不能同时存在"),

    SPECS_EXIST("该规格不能同时存在"),

    /**
     * 用品名称和价格不能同时重复
     */
    SUPPLIES_NAME_AND_PRICE_EXIST("用品名称和价格不能同时重复"),

    USER_POINT_NOT_ENOUGH("用户积分余额不足"),

    POINT_RECORD_BIZ_NOT_SUPPORT("用户积分记录业务类型不支持"),

    SUPPLY_NOT_ENOUGH("用品剩余库存数量不足"),

    /**
     * 会员分组名称重复，不能重复创建
     */
    MEMBER_GROUP_NAME_EXPIRE("会员分组名称重复，不能重复创建"),

    AUTH_FAILED("认证失败!"),

    AUTH_SUCCESS("认证成功!"),

    FIND_NOT_USER("找不到用户"),

    UN_AUTH_FAILED_GROUP_PLEASE_REPEAT("暂未认证，无需解绑"),

    UN_AUTH_FAILED_PHONE_PLEASE_REPEAT("该手机号未绑定微信用户"),

    AUTH_FAILED_GROUP_PLEASE_REPEAT("您已完成认证，解除后才可重新认证！"),

    AUTH_FAILED_GROUP_PLEASE_CONTACT_ADMINISTRATOR("您需要认证的组别不存在, 请联系管理员处理"),

    AUTH_FAILED_ACCOUNT_NOT_MATCH("认证失败，当前认证账号与您输入的信息不匹配！"),

    AUTH_FAILED_PHYSIO_PLEASE_CONTACT_ADMINISTRATOR("认证失败, 没有找到您的理疗师信息, 请联系管理员解决"),

    DISABLE_OWE_ACCOUNTS("挂账功能暂时未开放！"),

    NUMBER_NOT_GREATER("挂账次数不得超过规定次数, 请先支付其他订单"),

    NO_VIP_USER_NOT_MEMBER("非会员用户，不可挂账哦"),

    STAR_CARD_NOT_EXIST("星卡数据不存在"),

    USER_BUY_STAR_CARD_NOT_EXIST("您购买的星卡已不存在，请联系管理员处理"),

    STAR_CARD_TYPE_SELECTION_ERROR("星卡类型选择错误"),

    STAR_CARD_COUNT_REACHED_LIMIT("星卡使用次数已达上限, 无法使用"),

    SERVE_COUNT_REACHED_LIMIT("使用次数已达上限, 无法使用"),

    SERVE_DISABLED("服务被禁用，无法使用"),

    SERVE_EXPIRATION("服务已过期, 无法使用"),

    STAR_CARD_EXPIRATION("星卡已过期, 无法使用"),

    STAR_CARD_NAME_AND_SERVICE_IDS_EXIST("星卡名称和服务id集合不能重复"),

    STAR_CARD_IS_USED("星卡已被使用，无法修改或删除"),

    STAR_CARD_CANNOT_MODIFY("不可以修改包含的服务或类型，无法修改"),

    ERROR_ADMINISTRATOR_HANDLING("数据异常，请联系管理员处理"),

    STAR_CARD_USED_CANNOT_REFUNDED_ONLINE("星卡使用后无法线上退款，请联系管理员处理"),

    BUY_VIP_NOT_EXPIRE("您的会员未到期，不可重复购买"),

    BUY_VIP_NOT_AVAILABLE("该会员暂不可用！"),

    BUY_VIP_NOT_EXIST("该会员不存在！"),

    BUY_GOODS_NOT_EXIST("该商品不存在！"),

    AUTH_FAILED_ACCOUNT_NOT_EXIST("未检测到您的内部成员信息，无法认证"),

    CUSTOMER_NOT_EXIST("客户不存在"),

    COURSE_EXIST("该疗程已存在"),

    CUSTOMER_CARD_NOT_EXIST("未获取到客户购买的星卡"),

    COURSE_NOT_EXIST("未找到疗程，请先创建新疗程"),

    CUSTOMER_CARD_EXIST("不可重复复添加"),

    PARENT_NODE_NOT_EXIST("没有找到父节点，无法添加"),

    TIME_NOT("时限类型vip，有效时长不能为空");

    private final String msg;

    ResponseEnum(String msg) {
        this.msg = msg;
    }

}
